/**
 * for in 和 for of的区别
 */
//循环数组
//区别一： for in 和 for of都可以循环数组， for in 输出的是数组的index下标，而for of输出的是数组的每一项的值
const arr = [1,2,3,4]
for(let key in arr){
    console.log('for in',key,arr[key])
}

for(let key of arr){
    console.log('for of', key)
}

// 循环对象
// 区别二： for in 可以遍历对象，for of不能遍历对象，只能遍历带有iterator接口，例如Set、Map、String、Array
let obj = { name: 'xuna', age: 27 }
for(let key in obj){
    console.log('for in', key, obj[key])
}

// 数组对象
let list = [{name: 'xuna'},{age: 27}]
for(let value of list){
    console.log('for of', value)
    for(let key in value){
        console.log('for in', key, value[key])
    }
}

/**
 * 总结： for in 适合遍历对象，for of适合遍历数组，for in遍历的是数组的索引、对象的属性以及原型链上的属性
 */
